import axios from 'axios';
import router from '../router/index';
import { useUserStore } from '../store/UserStore.js';

const _axios = axios.create({
    baseURL: 'http://localhost:5000',
});

_axios.interceptors.request.use(
    function(config) {
        if(sessionStorage.getItem('token')) {
            config.headers.Authorization = sessionStorage.getItem('token');
        }
        return config;
    },
    function(error) {
        return Promise.reject(error);
    }
);

_axios.interceptors.response.use(
    function(response) {
        // 直接返回响应，让业务代码处理具体的状态码
        return response;
    },
    function(error) {
        if (error.response) {
            switch(error.response.status) {
                case 404:
                    console.error('请求的资源不存在');
                    break;
                case 401:
                    console.error('未授权，请重新登录');
                    useUserStore().logout();
                    router.push('/login');
                    break;
                case 403:
                    console.error('拒绝访问');
                    break;
                case 500:
                    console.error('服务器错误');
                    break;
                default:
                    console.error('请求失败:', error.response.data);
            }
        } else if (error.request) {
            console.error('未收到响应:', error.request);
        } else {
            console.error('请求配置错误:', error.message);
        }
        return Promise.reject(error);
    }
);

export default _axios;